#pragma once
#ifndef __LIT__EVENT__LISTENER__HH__
#define __LIT__EVENT__LISTENER__HH__

#include <LitExport.hpp>
#include <LitNamed.hpp>
#include <LitPointer.hpp>
#include <LitForward.hpp>

namespace Lit
{
	enum EventState
	{
		ES_CONSUME = 0,
		ES_PROPAGATE = 1
	};

	class LIT_API EventListener
	{
	public:
		EventListener();
		EventListener(const EventListener & rk);
		virtual ~EventListener();
		
		EventListener& operator=(const EventListener & rk);

		virtual EventState eventReceived( RefPtr<Event> evt ) = 0;
	};
	typedef RefPtr<EventListener>	EventListenerPtr;
};

#endif